package day15.lianxi;

import org.junit.Test;

import java.util.Arrays;

/**
 * @Auther:小陈的Java
 * 2. 有如下字符串String str = "王子向左走5步，王子向上走1步，王子向下走3步，王子向左走3步"。
 *    1. 求王子走了几个方向
 *    2. 求王子每个方向走了几步
 */
public class Test2 {
    public static String[] method2(String str){
        //将字符串分组
        String[] strs = str.split("，");
        //定义字符串,用于存储所有方向
        String result = "";
        //遍历每个字串
        for (String s :strs){
            String fangXiang = s.substring(s.indexOf("向")+1,s.indexOf("走"));
            if(!result.contains(fangXiang)){
                result = fangXiang+","+result;
            }
        }
        System.out.println(result);
        return result.split(",");
    }
    @Test
    public void test2(){
        String str = "王子向左走5步，王子向上走1步，王子向下走3步，王子向左走3步";
        String[] arr = method2(str);
        System.out.println(Arrays.toString(arr));
        System.out.println("王子走了"+arr.length+"个方向");
    }
    public static String[][] method3(String str){
        //查看所有方向，不重复
        String[] fangXiangs = method2(str);
        //定义二维数组，第一个参数是方向数量，第二参数方向所走的步数
        String[][] result = new String[fangXiangs.length][2];
        //给二维数组存方向
        for(int i=0;i<fangXiangs.length;i++){
            //取出每一个方向
            String fangXiang = fangXiangs[i];
            result[i][0] = fangXiang;
        }
        //给每个方向存步数
        for(int y=0;y<result.length;y++){
            String fangxiang = result[y][0];
            int steps = 0;
            for(String s :str.split("，")){
                if(s.contains(fangxiang)){
                    int bu = Integer.parseInt(s.substring(s.indexOf("走")+1,s.indexOf("步")));
                    steps+=bu;
                }
            }
            String buShus = steps+"";
            result[y][1] = buShus;
        }
        return result;
    }
    @Test
    public void test3(){
        String str = "王子向左走5步，王子向上走1步，王子向下走3步，王子向左走3步";
        String[][] arr = method3(str);
        System.out.println(arr);
    }
}
